package menus;

import herramientas.BitUtil;
import bitclub.Cliente;
import bitclub.OfertaDiaSemana;
import bitclub.OfertaNumeroArticulo;
import bitclub.Pelicula;
import bitclub.Proveedor;
import bitclub.Tarifa;
import bitclub.Trabajador;
import bitclub.Videoclub;
import bitclub.Videojuego;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @author BIT COMPANY
 */
public class Menu {

    //Usuario que maneja el menú
    private Trabajador usuario;

    /**
     * Crea un menú para controlar todas las opciones del videoclub para los empleados.
     * @param Trabajador Se trata de la persona que está operando los menús
     */
    public Menu(Trabajador usuario) {
        this.usuario = usuario;
    }

//Menus ////////////////////////////////////////////////////////////////////////
    /**
     * Muestra el menú principal del sistema de menús para trabajadores
     * PRINCIPAL
     */
    public void menuPrincipal() {
        int respuesta = 0;
        do {
            BitUtil.borra();
            respuesta = BitUtil.muestraMenu("MENU PRINCIPAL", new String[]{"Clientes", "Peliculas", "Videojuegos", "Alquiler", "Tarifas", "Ofertas", "Estadisticas", "Caja", "Proveedores", "Trabajadores", "Videoclub", "Salir"}, "Cerrar Sesion");
            switch (respuesta) {
                case 1:
                    menuClientes();
                    break;
                case 2:
                    menuPeliculas();
                    break;
                case 3:
                    menuVideojuegos();
                    break;
                case 4:
                    menuAlquiler();
                    break;
                case 5:
                    menuTarifas();
                    break;
                case 6:
                    menuOfertas();
                    break;
                case 7:
                    menuEstadisticas();
                    break;
                case 8:
                    menuCaja();
                    break;
                case 9:
                    menuProveedores();
                    break;
                case 10:
                    menuTrabajadores();
                    break;
                case 11:
                    menuVideoclub();
                    break;
                case 12:
                    boolean salir = BitUtil.dameConfirmacion("Esta seguro de salir de la aplicacion? (S/N) ");
                    if (salir) {
                        System.exit(0);
                    }
                    break;
                case 0:
                    boolean sesion = BitUtil.dameConfirmacion("Quiere cerrar su sesion? (S/N) ");
                    if (!sesion) {
                        respuesta = -1;
                    }
            }
        } while (respuesta != 0);
    }

    /**
     * Abre el sub-menú que hace referencia a los clientes
     * PRINCIPAL > CLIENTES
     */
    private void menuClientes() {
        int respuesta;
        do {
            BitUtil.borra();
            respuesta = BitUtil.muestraMenu("MENU CLIENTES", new String[]{"Buscar cliente", "Alta cliente"});
            switch (respuesta) {
                case 1:
                    Cliente cliente = OpcionesClientes.seleccionarCliente();
                    if (cliente != null) {
                        menuClientesSeleccionado(cliente);
                    }
                    break;
                case 2:
                    cliente = OpcionesClientes.opcionClientesDarAlta();
                    if (cliente != null) {
                        menuClientesSeleccionado(cliente);
                    }
                    break;
            }
        } while (respuesta != 0);
    }

    /**
     * Abre las opciones que se pueden hacer una vez elegido un cliente
     * PRINCIPAL > CLIENTES > BUSCAR > SELECCIONADO
     */
    private void menuClientesSeleccionado(Cliente cliente) {
        int respuesta;
        do {
            BitUtil.borra();
            System.out.println(cliente.toStringLinea());
            respuesta = BitUtil.muestraMenu("MENU CLIENTE", new String[]{"Ver cliente", "Ver Alquileres", "Dar Baja/Alta", "Editar", "Ingresar Saldo"});
            switch (respuesta) {
                case 1:
                    OpcionesClientes.opcionClientesVer(cliente);
                    break;
                case 2:
                    OpcionesClientes.opcionClientesVerAlquileres(cliente);
                    break;
                case 3:
                    OpcionesClientes.opcionClientesDarBaja(cliente);
                    break;
                case 4:
                    cliente = OpcionesClientes.opcionClientesEditar(cliente);
                    break;
                case 5:
                    OpcionesClientes.opcionClientesIngresarSaldo(cliente);
                    break;
            }
        } while (respuesta != 0);
    }

    /**
     * Abre el sub-menú que hace referencia a los artículos
     * PRINCIPAL > ARTICULOS
     */
    private void menuPeliculas() {
        int respuesta;
        do {
            BitUtil.borra();
            respuesta = BitUtil.muestraMenu("MENU PELICULAS", new String[]{"Buscar peliculas", "Alta peliculas"});
            switch (respuesta) {
                case 1:
                    Pelicula pelicula = OpcionesPeliculas.seleccionarPelicula(false);
                    if (pelicula != null) {
                        menuPeliculasSeleccionado(pelicula);
                    }
                    break;
                case 2:
                    pelicula = OpcionesPeliculas.opcionPeliculasDarAlta();
                    if (pelicula != null) {
                        menuPeliculasSeleccionado(pelicula);
                    }
                    break;
            }
        } while (respuesta != 0);
    }

    /**
     * Muestra las opciones que podemos hacer con un artículo seleccionado
     * PRINCIPAL > ARTICULOS > BUSCAR > SELECCIONADO
     */
    private void menuPeliculasSeleccionado(Pelicula pelicula) {
        int respuesta;
        do {
            BitUtil.borra();
            System.out.println(pelicula.toStringLinea());
            respuesta = BitUtil.muestraMenu("MENU PELICULAS", new String[]{"Ver datos pelicula", "Dar de Baja/Alta", "Editar"});
            switch (respuesta) {
                case 1:
                    OpcionesPeliculas.opcionPeliculasVer(pelicula);
                    break;
                case 2:
                    OpcionesPeliculas.opcionPeliculasDarBaja(pelicula);
                    break;
                case 3:
                    pelicula = OpcionesPeliculas.opcionPeliculasEditar(pelicula);
                    break;
            }
        } while (respuesta != 0);
    }

    /**
     * Abre el sub-menú que hace referencia a los artículos
     * PRINCIPAL > ARTICULOS
     */
    private void menuVideojuegos() {
        int respuesta;
        do {
            BitUtil.borra();
            respuesta = BitUtil.muestraMenu("MENU VIDEOJUEGOS", new String[]{"Buscar videojuego", "Alta videojuego"});
            switch (respuesta) {
                case 1:
                    Videojuego videojuego = OpcionesVideojuegos.seleccionarVideojuego(false);
                    if (videojuego != null) {
                        menuVideojuegosSeleccionado(videojuego);
                    }
                    break;
                case 2:
                    videojuego = OpcionesVideojuegos.opcionVideojuegosDarAlta();
                    if (videojuego != null) {
                        menuVideojuegosSeleccionado(videojuego);
                    }
                    break;
            }
        } while (respuesta != 0);
    }

    /**
     * Muestra las opciones que podemos hacer con un artículo seleccionado
     * PRINCIPAL > ARTICULOS > BUSCAR > SELECCIONADO
     */
    private void menuVideojuegosSeleccionado(Videojuego videojuego) {
        int respuesta;
        do {
            BitUtil.borra();
            System.out.println(videojuego.toStringLinea());
            respuesta = BitUtil.muestraMenu("MENU VIDEOJUEGOS", new String[]{"Ver videojuego", "Dar de Baja/Alta", "Editar"});
            switch (respuesta) {
                case 1:
                    OpcionesVideojuegos.opcionVideojuegosVer(videojuego);
                    break;
                case 2:
                    OpcionesVideojuegos.opcionVideojuegosDarBaja(videojuego);
                    break;
                case 3:
                    videojuego = OpcionesVideojuegos.opcionVideojuegosEditar(videojuego);
                    break;
            }
        } while (respuesta != 0);
    }

    /**
     * Menú para alquilar (AQUÍ FALTAN MUCHAS COSAS)
     * PRINCIPAL > ALQUILER
     */
    private void menuAlquiler() {
        int respuesta;
        do {
            BitUtil.borra();
            respuesta = BitUtil.muestraMenu("MENU ALQUILER", new String[]{"Alquiler", "Devolver"});
            switch (respuesta) {
                case 1:
                    OpcionesAlquiler.opcionAlquilar(usuario);
                    break;
                case 2:
                    OpcionesAlquiler.opcionDevolver(usuario);
                    break;
            }
        } while (respuesta != 0);
    }

    /**
     * Abre el sub-menú que hace referencia a los empleados
     * PRINCIPAL > EMPLEADOS
     */
    private void menuTrabajadores() {
        if(!usuario.isAdministrador()){
            System.out.println("\n");
            System.out.println("No tiene permiso de administrador.\n");
            BitUtil.esperaEnter();
            return;
        }        
        int respuesta;
        do {
            BitUtil.borra();
            respuesta = BitUtil.muestraMenu("MENU TRABAJADORES", new String[]{"Buscar trabajador", "Alta trabajador"});
            switch (respuesta) {
                case 1:
                    Trabajador trabajador = OpcionesTrabajadores.seleccionarTrabajador();
                    if (trabajador != null) {
                        menuTrabajadoresSeleccionado(trabajador);
                    }
                    break;
                case 2:
                    trabajador = OpcionesTrabajadores.opcionTrabajadoresDarAlta();
                    if (trabajador != null) {
                        menuTrabajadoresSeleccionado(trabajador);
                    }
                    break;
            }
        } while (respuesta != 0);
    }

    /**
     * Permite seleccionar un empleado
     * PRINCIPAL > EMPLEADOS > BUSCAR > SELECCIONADO
     */
    private void menuTrabajadoresSeleccionado(Trabajador trabajador) {
        int respuesta;
        do {
            BitUtil.borra();
            if (trabajador.isAdministrador()) {
                System.out.println("Administrador\n" + trabajador.toStringLinea());
            } else {
                System.out.println(trabajador.toStringLinea());
            }
            respuesta = BitUtil.muestraMenu("MENU TRABAJADORES", new String[]{"Ver empleado", "Dar de Baja/Alta", "Editar"});
            switch (respuesta) {
                case 1:
                    OpcionesTrabajadores.opcionTrabajadoresVer(trabajador);
                    break;
                case 2:
                    OpcionesTrabajadores.opcionTrabajadoresDarBaja(trabajador);
                    break;
                case 3:
                    trabajador = OpcionesTrabajadores.opcionTrabajadoresEditar(trabajador);
                    break;
            }
        } while (respuesta != 0);
    }

    /**
     * Abre el sub-menú que hace referencia a los empleados
     * PRINCIPAL > TARIFAS
     */
    private void menuTarifas() {
        int respuesta;
        do {
            BitUtil.borra();
            respuesta = BitUtil.muestraMenu("MENU TARIFAS", new String[]{"Buscar tarifa", "Crear nueva tarifa"});
            switch (respuesta) {
                case 1:
                    Tarifa tarifa = OpcionesTarifas.seleccionarTarifa();
                    if (tarifa != null) {
                        menuTarifasSeleccionado(tarifa);
                    }
                    break;
                case 2:
                    tarifa = OpcionesTarifas.opcionTarifasCrear();
                    if (tarifa != null) {
                        menuTarifasSeleccionado(tarifa);
                    }
                    break;
            }
        } while (respuesta != 0);
    }

    /**
     * Permite seleccionar un empleado
     * PRINCIPAL > TARIFAS > BUSCAR > SELECCIONADO
     */
    private void menuTarifasSeleccionado(Tarifa tarifa) {
        int respuesta;
        boolean enUso;
        do {
            BitUtil.borra();
            System.out.println(tarifa.toStringLinea());

            respuesta = BitUtil.muestraMenu("MENU TARIFAS", new String[]{"Ver articulos", "Eliminar", "Editar tarifa"});
            switch (respuesta) {
                case 1:
                    OpcionesTarifas.opcionTarifasVer(tarifa);
                    break;
                case 2:
                    enUso = OpcionesTarifas.opcionTarifasEliminar(tarifa);
                    if (!enUso) {
                        respuesta = 0;
                    }
                    break;
                case 3:
                    tarifa = OpcionesTarifas.opcionTarifasEditar(tarifa);
                    break;
            }
        } while (respuesta != 0);
    }

    /**
     * Abre el sub-menú que hace referencia a las ofertas
     * PRINCIPAL > OFERTAS
     */
    private void menuEstadisticas() {

        int respuesta;
        do {
            BitUtil.borra();
            respuesta = BitUtil.muestraMenu("MENU ESTADISTICAS", new String[]{"Peliculas mas alquiladas", "Peliculas menos alquiladas", "Videojuegos mas alquilados", "Videojuegos menos alquilados"});
            switch (respuesta) {
                case 1:
                    OpcionesEstadisticas.opcionEstadisticasPeliculasMasAlquiladas();
                    BitUtil.esperaEnter();
                    break;
                case 2:
                    OpcionesEstadisticas.opcionEstadisticasPeliculasMenosAlquiladas();
                    BitUtil.esperaEnter();
                    break;
                case 3:
                    OpcionesEstadisticas.opcionEstadisticasVideojuegosMasAlquiladas();
                    BitUtil.esperaEnter();
                    break;
                case 4:
                    OpcionesEstadisticas.opcionEstadisticasVideojuegosMenosAlquiladas();
                    BitUtil.esperaEnter();
                    break;
            }
        } while (respuesta != 0);
    }

    /**
     * Muestra las opciones de caja
     * PRINCIPAL > CAJA
     */
    private void menuCaja() {
        int respuesta;
        do {
            BitUtil.borra();
            respuesta = BitUtil.muestraMenu("MENU CAJA", new String[]{"Ultimos movimientos", "Generar informe", "Cerrar Caja"});
            switch (respuesta) {
                case 1:
                    OpcionesCaja.opcionCajaUltimosMovimientos();
                    break;
                case 2:
                    OpcionesCaja.opcionCajaGenerarInforme();
                    break;
                case 3:
                    OpcionesCaja.opcionCajaCerrar();
                    break;
            }
        } while (respuesta != 0);
    }

    /**
     * Abre el sub-menú que hace referencia a los empleados
     * PRINCIPAL > EMPLEADOS
     */
    private void menuProveedores() {
        int respuesta;
        do {
            BitUtil.borra();
            respuesta = BitUtil.muestraMenu("MENU PROVEEDORES", new String[]{"Buscar proveedores", "Alta proveedor"});
            switch (respuesta) {
                case 1:
                    Proveedor proveedor = OpcionesProveedores.seleccionarProveedor();
                    if (proveedor != null) {
                        menuProveedoresSeleccionado(proveedor);
                    }
                    break;
                case 2:
                    proveedor=OpcionesProveedores.opcionProveedoresDarAlta();
                    if (proveedor != null) {
                        menuProveedoresSeleccionado(proveedor);
                    }                    
                    break;
            }
        } while (respuesta != 0);
    }

    /**
     * Permite seleccionar un empleado
     * PRINCIPAL > EMPLEADOS > BUSCAR > SELECCIONADO
     */
    private void menuProveedoresSeleccionado(Proveedor proveedor) {
        int respuesta;
        do {
            BitUtil.borra();
            System.out.println(proveedor.toStringLinea());
            respuesta = BitUtil.muestraMenu("MENU PROVEEDORES", new String[]{"Ver proveedor", "Eliminar", "Editar"});
            switch (respuesta) {
                case 1:
                    OpcionesProveedores.opcionProveedoresVer(proveedor);
                    break;
                case 2:
                    OpcionesProveedores.opcionProveedoresDarBaja(proveedor);
                    respuesta = 0; //para q no muestre de nuevo el menu de ver y editar con el proveedor borrado de la bd
                    System.out.println("Eliminacion cancelada");
                    break;
                case 3:
                    OpcionesProveedores.opcionProveedoresEditar(proveedor);
                    break;
            }
        } while (respuesta != 0);
    }

    /**
     * Muestra las opciones de datos del videoclub
     */
    private void menuVideoclub() {
        if(!usuario.isAdministrador()){
            System.out.println("\n");
            System.out.println("No tiene permiso de administrador.\n");
            BitUtil.esperaEnter();
            return;
        }
        int respuesta;
        Videoclub videoclub;
        do {
            BitUtil.borra();
            respuesta = BitUtil.muestraMenu("MENU VIDEOCLUB", new String[]{"Ver", "Editar"});
            switch (respuesta) {
                case 1:
                    videoclub = Videoclub.seleccionar();
                    OpcionesVideoclub.opcionVideoclubVer(videoclub);
                    break;
                case 2:
                    videoclub = Videoclub.seleccionar();
                    OpcionesVideoclub.opcionVideoclubEditar(videoclub);
                    break;
            }
        } while (respuesta != 0);
    }

    public void menuOfertas() {
        int respuesta;
        boolean bajaPrincipal = false;

        do {
            BitUtil.borra();
            respuesta = BitUtil.muestraMenu("MENU OFERTAS", new String[]{"Buscar oferta", "Alta oferta"});
            switch (respuesta) {
                case 1:
                    menuOfertaBuscar();
                    break;
                case 2:
                    OpcionesOfertas.opcionOfertasCrear();
                    break;
            }
        } while (respuesta != 0);
    }

    //menu q te da la opcion de buscar una oferta del  tipo DiaSemana o NumeroArticulo=
    public void menuOfertaBuscar() {

        int respuesta;
        do {
            BitUtil.borra();
            respuesta = BitUtil.muestraMenu("MENU OFERTA", new String[]{"Oferta Dia de la Semana", "Oferta Numero de Articulos"});
            switch (respuesta) {
                case 1:
                    List<OfertaDiaSemana> listOf = new ArrayList();
                    OfertaDiaSemana o;
                    listOf = menuOfertaDiaSemana(); //devuelve una lista de ofertasDiaSemana (antigua, actual o futura)

                    if (listOf.isEmpty()) {
                        System.out.println("No hay ofertas de este tipo");
                        BitUtil.esperaEnter();
                        break;
                    } else {
                        o = menuOfertaDiaSemanaSelecionada(listOf); //devuelve una oferta elegida de entre la lista
                        if (o != null) {
                            OpcionesOfertas.menuOfertaDiaSemanaSelecionadaOpcion(o);    //manda dicha oferta para q se vea, edite o elimine
                        }
                        break;
                    }
                case 2:
                    List<OfertaNumeroArticulo> listOf2 = new ArrayList();
                    OfertaNumeroArticulo o2;
                    listOf2 = menuOfertaNumeroArticulo(); //devuelve una lista de ofertasNumeroArticulo (antogua, acutal, futura)

                    if (listOf2.isEmpty()) {
                        System.out.println("No hay ofertas de este tipo");
                        BitUtil.esperaEnter();
                        break;
                    } else {
                        o2 = menuOfertaNumeroArticuloSelecionada(listOf2); //devuelve una oferta concreta de la lista
                        if (o2 != null) {
                            OpcionesOfertas.menuOfertaNumeroArticuloSelecionadaOpcion(o2);  //manda ducha oferta para verla, editarla o eliminarla
                        }
                        break;
                    }
            }
        } while (respuesta != 0);
    }

    //menu que te da para elegir entre Oferta Dia Semana (Antigua, actual o futura) y devuelve una lista
    public List<OfertaDiaSemana> menuOfertaDiaSemana() {
        Date fechaBusqueda = new Date();
        List<OfertaDiaSemana> o1 = new ArrayList();
        String busqueda[] = {"Antiguas", "Actuales", "Futuras"};
        int respuesta = 0;

        BitUtil.borra();
        respuesta = BitUtil.muestraMenu("MENU SELECCIONAR OFERTA DIA SEMANA", busqueda);
        switch (respuesta) {
            case 1:
                o1 = OfertaDiaSemana.seleccionarOferta(fechaBusqueda, "Antiguas");

                break;
            case 2:
                o1 = OfertaDiaSemana.seleccionarOferta(fechaBusqueda, "Actuales");

                break;
            case 3:
                o1 = OfertaDiaSemana.seleccionarOferta(fechaBusqueda, "Futuras");

                break;
            default:
                break;
        }
        return o1;
    }

    //menu que te da para elegir entre las ofertas de numero de articulo si las quiere antiguas, actuales o futuras y devuelve una lista
    public List<OfertaNumeroArticulo> menuOfertaNumeroArticulo() {

        Date fechaBusqueda = new Date();
        List<OfertaNumeroArticulo> o2 = null;
        String busqueda[] = {"Antiguas", "Actuales", "Futuras"};
        int respuesta;
        BitUtil.borra();
        respuesta = BitUtil.muestraMenu("MENU SELECCIONAR OFERTA NUMERO ATICULOS", busqueda);
        switch (respuesta) {
            case 1:
                o2 = OfertaNumeroArticulo.seleccionarOferta(fechaBusqueda, "Antiguas");

                break;
            case 2:
                o2 = OfertaNumeroArticulo.seleccionarOferta(fechaBusqueda, "Actuales");

                break;
            case 3:
                o2 = OfertaNumeroArticulo.seleccionarOferta(fechaBusqueda, "Futuras");
                break;
            default:
                break;
        }
        return o2;
    }

    //menu q te muestra una lista de ofertas dia de la semana  para elegir una
    public OfertaDiaSemana menuOfertaDiaSemanaSelecionada(List<OfertaDiaSemana> o) {
        //edita borra elimina
        BitUtil.borra();
        DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
        int tipo, contador = 0, respuesta = -1;
        OfertaDiaSemana tempOf = null;
        String ofertaDiaSemana[] = new String[o.size()];
        for (OfertaDiaSemana of1 : o) {
            tipo = of1.getTipo();
            if (tipo == 1) {
                ofertaDiaSemana[contador] = "[" + of1.getDiaSemana() + "] - Nombre: " + of1.getNombre() + ", Descuento: " + of1.getDescuento() + "%, "
                        + "F.I: " + df.format(of1.getFechaInicio()) + ", F:F: " + df.format(of1.getFechaFin());
            } else if (tipo == 2) {
                ofertaDiaSemana[contador] = "[" + of1.getDiaSemana() + "] - Nombre: " + of1.getNombre() + ", Dias Extras: " + of1.getDiasExtras() + ", "
                        + "F.I: " + df.format(of1.getFechaInicio()) + ", F:F: " + df.format(of1.getFechaFin());
            } else {
                ofertaDiaSemana[contador] = "[" + of1.getDiaSemana() + "] - Nombre: " + of1.getNombre() + ", Precio Nuevo: " + of1.getPrecioNuevo() + " €, "
                        + "F.I: " + df.format(of1.getFechaInicio()) + ", F:F: " + df.format(of1.getFechaFin());
            }
            contador++;
        }
        respuesta = BitUtil.muestraMenu("Elige oferta: ", ofertaDiaSemana);
        if (respuesta != 0) {
            tempOf = o.get((respuesta) - 1);
        }
        return tempOf;
    }

    //menu que te muestras una lista de ofertas numero articulos y te da a elegir una
    public OfertaNumeroArticulo menuOfertaNumeroArticuloSelecionada(List<OfertaNumeroArticulo> o) {
        //edita borra elimina

        BitUtil.borra();
        DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
        int tipo, contador = 0, respuesta = -1;
        OfertaNumeroArticulo tempOf = null;

        String ofertaNumeroArticulo[] = new String[o.size()];
        for (OfertaNumeroArticulo of2 : o) {
            tipo = of2.getTipo();
            if (tipo == 1) {
                ofertaNumeroArticulo[contador] = "[" + of2.getNumAlquiladas() + " Peliculas] - Nombre: " + of2.getNombre() + ", Descuento: " + of2.getDescuento() + "%, "
                        + "F.I: " + df.format(of2.getFechaInicio()) + ", F:F: " + df.format(of2.getFechaFin());
            } else if (tipo == 2) {
                ofertaNumeroArticulo[contador] = "[" + of2.getNumAlquiladas() + " Peliculas] - Nombre: " + of2.getNombre() + ", Dias Extras: " + of2.getDiasExtras() + ", "
                        + "F.I: " + df.format(of2.getFechaInicio()) + ", F:F: " + df.format(of2.getFechaFin());
            } else if (tipo == 3) {
                ofertaNumeroArticulo[contador] = "[" + of2.getNumAlquiladas() + " Peliculas] - Nombre: " + of2.getNombre() + ", Precio Nuevo: " + of2.getDescuento() + " €, "
                        + "F.I: " + df.format(of2.getFechaInicio()) + ", F:F: " + df.format(of2.getFechaFin());
            } else {
                ofertaNumeroArticulo[contador] = "[" + of2.getNumAlquiladas() + " x " + of2.getNumPagar() + "] - Nombre: " + of2.getNombre() + ", "
                        + "F.I: " + df.format(of2.getFechaInicio()) + ", F:F: " + df.format(of2.getFechaFin());
            }
            contador++;
        }
        respuesta = BitUtil.muestraMenu("Elige oferta: ", ofertaNumeroArticulo);
        if (respuesta != 0) {
            tempOf = o.get((respuesta) - 1);
        }
        return tempOf;
    }
}
